#pragma once

#include <QJsonObject>
#include <QJsonArray>
#include <QString>
#include <QVariant>

class GenericJsonConverter {
public:
    // 基础类型转换
    static QJsonValue toJsonValue(const QString& value);
    static QJsonValue toJsonValue(int value);
    static QJsonValue toJsonValue(double value);
    static QJsonValue toJsonValue(bool value);
    static QJsonValue toJsonValue(long value);

    // 从JSON读取基础类型
    static QString getString(const QJsonObject& json, const QString& key, const QString& defaultValue = "");
    static int getInt(const QJsonObject& json, const QString& key, int defaultValue = 0);
    static double getDouble(const QJsonObject& json, const QString& key, double defaultValue = 0.0);
    static bool getBool(const QJsonObject& json, const QString& key, bool defaultValue = false);
    static long getLong(const QJsonObject& json, const QString& key, long defaultValue = 0);
};
